// pages/ProductList/ProductList.js
import {
  queryProductListConditional
} from "../../service/product"

Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 商品列表
    productList: [],
    // 当前页
    page: 1,
    // 页面大小
    pageSize: 10,
    // 搜索分类 0-普通搜索，1-分类搜索，2-品牌搜索
    searchType: 0,
    // 排序方式 0-综合排序，1-销量排序，2-价格从低到高，3-价格从高到低，4-上架时间
    sort: 0,
    // 搜索关键词 普通搜索下是关键词，分类搜索下是分类ID，品牌搜索下是品牌ID
    keyword: null,
    // 页面名称
    title: "",
    // 当前激活索引
    activeTabIndex: 0,
    // 0-价格从第到高，1-价格从高到底,-1其他
    priceOrderBy: 0,
    // scrollView滚动距离
    scrollTop: 0
  },
  /**
   * 上拉刷新
   */
  async loadMoreProduct() {
    this.data.page = this.data.page + 1
    const searchType = this.data.searchType
    const sort = this.data.sort
    const keyword = this.data.keyword
    const page = this.data.page
    const pageSize = this.data.pageSize
    const res = await queryProductListConditional(searchType, sort, keyword, page, pageSize)
    this.printLog(searchType, sort, page, keyword)
    this.setData({
      productList: [...this.data.productList, ...res.data.records]
    })
  },
  /**
   * 点击Tab区域
   */
  async onTapTab(event) {
    const index = event.currentTarget.dataset.index
    if (index === this.data.activeTabIndex && index !== 2) return
    if (index !== 2) {
      this.setData({
        activeTabIndex: index
      })
    } else {
      if (index === this.data.activeTabIndex) {
        this.setData({
          activeTabIndex: index,
          priceOrderBy: this.data.priceOrderBy === 0 ? 1 : 0
        })
      } else {
        this.setData({
          activeTabIndex: index,
          priceOrderBy: 0
        })
      }
    }
    // 加载数据
    if (index === 0) {
      this.data.sort = 0
    }
    if (index === 1) {
      this.data.sort = 1
    }
    if (index === 2 && this.data.priceOrderBy === 0) {
      this.data.sort = 2
    }
    if (index === 2 && this.data.priceOrderBy === 1) {
      this.data.sort = 3
    }
    if (index === 3) {
      this.data.sort = 4
    }
    this.data.page = 1
    this.data.pageSize = 10
    await this.loadData()
    this.setData({
      scrollTop:0
    })
  },
  /**
   * 点击查看商品详情
   */
  onTapCheckProductDetail(event){
    const productId = event.target.dataset.productId
    wx.navigateTo({
      url: `/pages/Product/Product?productId=${productId}`,
    })
  },
  /**
   * 点击导航到缺货登记页面
   */
  onTapNavigateToOutOfStockRegistrationPage(){
    wx.navigateTo({
      url: '/pages/OutOfStockRegistration/OutOfStockRegistration',
    })
  },
  /**
   * 加载数据
   */
  async loadData() {
    wx.showLoading({
      title: '加载中',
    })
    const searchType = this.data.searchType
    const sort = this.data.sort
    const keyword = this.data.keyword
    const page = this.data.page
    const pageSize = this.data.pageSize
    const res = await queryProductListConditional(searchType, sort, keyword, page, pageSize)
    this.setData({
      productList: res.data.records
    })
    this.printLog(searchType, sort, page, keyword)
    wx.hideLoading()
    return res
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const searchType = Number(options.searchType)
    const keyword = options.keyword
    const pageTitle = options.title
    this.data.searchType = searchType
    this.data.keyword = keyword
    this.data.sort = 0
    this.loadData()
    wx.setNavigationBarTitle({
      title: pageTitle,
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },
  printLog(searchType, sort, page, keyword) {
    if (searchType === 0) {
      if (sort === 0) {
        console.log(`加载第${page}页搜索数据，关键词为${keyword}`, '综合排序', this.data.productList);
      }
      if (sort === 1) {
        console.log(`加载第${page}页搜索数据，关键词为${keyword}`, '销量排序', this.data.productList);
      }
      if (sort === 2) {
        console.log(`加载第${page}页搜索数据，关键词为${keyword}`, '价格从低到高排序', this.data.productList);
      }
      if (sort === 3) {
        console.log(`加载第${page}页搜索数据，关键词为${keyword}`, '价格从高到低排序', this.data.productList);
      }
      if (sort === 4) {
        console.log(`加载第${page}页搜索数据，关键词为${keyword}`, '上架时间排序', this.data.productList);
      }
    }
    if (searchType === 1) {
      if (sort === 0) {
        console.log(`加载第${page}页分类数据数据，分类ID为${keyword}`, '综合排序', this.data.productList);
      }
      if (sort === 1) {
        console.log(`加载第${page}页分类数据数据，分类ID为${keyword}`, '销量排序', this.data.productList);
      }
      if (sort === 2) {
        console.log(`加载第${page}页分类数据数据，分类ID为${keyword}`, '价格从低到高排序', this.data.productList);
      }
      if (sort === 3) {
        console.log(`加载第${page}页分类数据数据，分类ID为${keyword}`, '价格从高到低排序', this.data.productList);
      }
      if (sort === 4) {
        console.log(`加载第${page}页分类数据数据，分类ID为${keyword}`, '上架时间排序', this.data.productList);
      }
    }
    if (searchType === 2) {
      if (sort === 0) {
        console.log(`加载第${page}页品牌数据，品牌ID为${keyword}`, '综合排序', this.data.productList);
      }
      if (sort === 1) {
        console.log(`加载第${page}页品牌数据，品牌ID为${keyword}`, '销量排序', this.data.productList);
      }
      if (sort === 2) {
        console.log(`加载第${page}页品牌数据，品牌ID为${keyword}`, '价格从低到高排序', this.data.productList);
      }
      if (sort === 3) {
        console.log(`加载第${page}页品牌数据，品牌ID为${keyword}`, '价格从高到低排序', this.data.productList);
      }
      if (sort === 4) {
        console.log(`加载第${page}页品牌数据，品牌ID为${keyword}`, '上架时间排序', this.data.productList);
      }
    }
  }
})